home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / COMP / TEST / FPU_SYNC.M < prev    next >
Encoding:
Text File  |  1991-03-28  |  3.1 KB  |  3 lines

  1. ⓪ (*⓪"hier gibt's ein Problem:⓪"in LTOS klappt die Synchronisation nicht, wenn hyperCACHE verwendet wird.⓪"Obwohl die FPU offenbar bei 1) auf die Datenabholung wartet, tut sie's⓪"nach dem Lesen immer noch. Erst ein 2. Lesezugriff stellt sie zufrieden.⓪ *)⓪ ⓪ (*$C-*)⓪ module t2;⓪ (*$F-*)⓪ ⓪ FROM SYSTEM IMPORT ASSEMBLER;⓪ FROM SFP004 IMPORT FPUInit;⓪ FROM StrConv IMPORT StrToReal;⓪ ⓪ CONST⓪(fpstat  =  $fffffa40;       (* Response word of MC68881 read *)⓪(fpstatlo=  $fffffa41;⓪(fpctrl  =  $fffffa42;       (* Control  word of MC68881 write *)⓪(fpcmd   =  $fffffa4a;       (* Command  word of MC68881 write *)⓪(fpcond  =  $fffffa4e;       (* Condition word of MC68881 write *)⓪(fpop    =  $fffffa50;       (* Operand  long of MC68881 read/write *)⓪(fpregsel=  $fffffa54;       (* register select long read *)⓪(⓪(A2stat  =  -1;            (* Response word of MC68881 read *)⓪(A2ctrl  =  1;             (* Control  word of MC68881 write *)⓪(A2cmd   =  9;             (* Command  word of MC68881 write *)⓪(A2cond  =  $D;            (* Condition word of MC68881 write *)⓪(A2op    =  $F;            (* Operand  long of MC68881 read/write *)⓪(A2regsel=  $13;           (* register select long read *)⓪ ⓪ PROCEDURE @LTOS;⓪"(*$L-*)⓪"BEGIN⓪$ASSEMBLER⓪ DoDl0   TST.B   fpstatlo⓪(BEQ     DoDl0⓪(MOVE.W  #$5500,fpcmd         ; FMOVE.D (A0),FP2⓪ !DoDl1  TST.B   fpstatlo⓪(BEQ     DoDl1⓪(MOVE.L  (A0)+,fpop⓪(TST.W   fpstat⓪(MOVE.L  (A0),fpop⓪ !DoDl3  TST.B   fpstatlo⓪(BEQ     DoDl3⓪(MOVE.W  fpstat,D0⓪(CMPI.W  #$0802,D0⓪(BNE     DoDErr3⓪(MOVE.W  #$6500,fpcmd         ; FMOVE.S FP2,D1⓪ !DoDl5  MOVE.B  fpstatlo,D0⓪(BEQ     DoDl5⓪(SUBQ.B  #4,D0⓪(BNE     DoDErr2⓪(; 1) die FPU hat das Datum bereitgestellt⓪(MOVE.L  fpop,D0⓪(MOVE.W  fpstat,D0⓪(CMPI.W  #$0802,D0⓪(BNE     DoDErr⓪(RTS⓪ DoDErr3 BREAK⓪ DoDErr2 BREAK⓪ !DoDErr LINK    A5,#0⓪(BREAK⓪(UNLK    A5⓪(CLR.L   D0⓪$END⓪"END @LTOS;⓪ (*$L=*)⓪ ⓪ var f: INTEGER; lr: LONGREAL; sr: REAL; p: CARDINAL; b: BOOLEAN;⓪ ⓪ begin⓪"FPUInit;⓪"sr:= SHORT (lr);⓪"sr:= SHORT (lr);⓪"sr:= SHORT (lr);⓪"sr:= SHORT (lr);⓪"ASSEMBLER BREAK END;⓪ ⓪"ASSEMBLER⓪(MOVEQ   #1,D7⓪&again:⓪&⓪(MOVE.W  #$5500,fpcmd         ; FMOVE.D (A0),FP2⓪ !DoDl1  TST.B   fpstatlo⓪(BEQ     DoDl1⓪(MOVE.L  D0,fpop⓪(TST.W   fpstat⓪(MOVE.L  D0,fpop⓪(MOVE.W  fpstat,D0⓪(MOVE.W  fpstat,D1⓪(MOVE.W  fpstat,D2⓪(MOVE.W  fpstat,D3⓪(MOVE.W  fpstat,D4⓪(MOVE.W  fpstat,D5⓪(MOVE.W  fpstat,D6⓪(DBRA    D7,again⓪(BREAK⓪"END;⓪ end t2.⓪ ə
  2. (* $FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFED2912$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DF$FFE965DFÇ$000007F6T.......T.......T.......T.......T.......T.......T.......T.......T.......T.......$000007F6$000005D9$000007F6$00000842$0000052A$FFEBB236$00000916$FFEBB236$FFEBB236$000008EB$FFEBB236$0000090E$000005CF$000005C1$000005DF$00000842êÇé*)
  3.